home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
bbs
/
fmail120.zip
/
FMSTRUCT.ZIP
/
fmstruct.h
< prev
Wrap
C/C++ Source or Header
|
1996-08-28
|
19KB
|
608 lines
/*
FMSTRUCT.H
File structures for FMail 1.20
Copyright (C) 1996 Folkert J. Wijnstra. All rights reserved.
All information in this document is subject to change at any time
without prior notice!
Strings are NUL terminated arrays of char type.
Path names always end on a \ character (followed by NUL).
*/
/**** Modify the type definitions below if necessary for your compiler ****/
#define fhandle signed int
#define uchar unsigned char
#define schar char
#ifndef __32BIT__
#define u16 unsigned int
#define s16 signed int
#else
#define u16 short unsigned int
#define s16 short signed int
#endif
#define u32 long unsigned int
#define s32 long signed int
#define udef unsigned int
#define sdef signed int
#define MAX_U32 0xFFFFFFFFL
/* ********** General structures ********** */
typedef struct
{ uchar programName[46];
u16 memRequired; } archiverInfo;
typedef uchar pathType[48];
typedef struct
{ u16 zone;
u16 net;
u16 node;
u16 point; } nodeNumType;
typedef struct
{ nodeNumType nodeNum;
u16 fakeNet; } nodeFakeType;
/* ********** File header structure ********** */
#define DATATYPE_CF 0x0102 /* not used yet */
#define DATATYPE_NO 0x0202 /* node file */
#define DATATYPE_AD 0x0401 /* area file for echo mail defaults */
#define DATATYPE_AE 0x0402 /* area file for echo mail */
typedef struct
{ uchar versionString[32]; /* Always starts with 'FMail' */
u16 revNumber; /* Is now 0x0100 */
u16 dataType; /* See #defines above */
u16 headerSize;
s32 creationDate;
s32 lastModified;
u16 totalRecords;
u16 recordSize;
} headerType;
/* The structure below is used by the Areas File and (only partly)
by the Config File */
typedef struct
{ unsigned active : 1; /* Bit 0 */
unsigned tinySeenBy : 1; /* Bit 1 */
unsigned security : 1; /* Bit 2 */
unsigned : 1; /* Bit 3 */
unsigned allowPrivate: 1; /* Bit 4 */
unsigned impSeenBy : 1; /* Bit 5 */
unsigned checkSeenBy : 1; /* Bit 6 */
unsigned : 1; /* Bit 7 */
unsigned local : 1; /* Bit 8 */
unsigned disconnected: 1; /* Bit 9 */
unsigned _reserved : 1; /* Bit 10 */
unsigned allowAreafix: 1; /* Bit 11 */
unsigned : 2; /* Bit 12-13 */
unsigned arrivalDate : 1; /* Bit 14 */
unsigned sysopRead : 1; /* Bit 15 */ } areaOptionsType;
/* ********** FMAIL.CFG ********** */
#define MAX_AKAS 32
#define MAX_AKAS_F 64
#define MAX_AKAS_OLD 16
#define MAX_NA_OLD 11
#define MAX_NETAKAS 32
#define MAX_NETAKAS_F 64
#define MAX_USERS 16
#define MAX_UPLREQ 32
#define MAX_MATCH 16 // not used yet
#define LOG_NEVER 0x0000
#define LOG_INBOUND 0x0001
#define LOG_OUTBOUND 0x0002
#define LOG_PKTINFO 0x0004
#define LOG_XPKTINFO 0x0008
#define LOG_UNEXPPWD 0x0010
#define LOG_SENTRCVD 0x0020
#define LOG_STATS 0x0040
#define LOG_PACK 0x0080
#define LOG_MSGBASE 0x0100
#define LOG_ECHOEXP 0x0200
#define LOG_NETIMP 0x0400
#define LOG_NETEXP 0x0800
#define LOG_OPENERR 0x1000
#define LOG_EXEC 0x2000
#define LOG_NOSCRN 0x4000
#define LOG_ALWAYS 0x8000
#define LOG_DEBUG 0x8000
typedef nodeFakeType _akaListType[MAX_AKAS_OLD];
typedef nodeFakeType akaListType[MAX_AKAS_F];
typedef struct
{
unsigned useEMS : 1; /* BIT 0 */
unsigned checkBreak : 1; /* BIT 1 */
unsigned swap : 1; /* BIT 2 */
unsigned swapEMS : 1; /* BIT 3 */
unsigned swapXMS : 1; /* BIT 4 */
unsigned : 1;
unsigned monochrome : 1; /* BIT 6 */
unsigned commentFFD : 1; /* BIT 7 */
unsigned PTAreasBBS : 1; /* BIT 8 */
unsigned commentFRA : 1; /* BIT 9 */
unsigned : 1; /* BIT 10 */
unsigned incBDRRA : 1; /* BIT 11 */
unsigned : 1; /* BIT 12 */
unsigned : 2;
unsigned _RA2 : 1; /* BIT 15 */ } genOptionsType;
typedef struct
{
unsigned removeNetKludges : 1; /* Bit 0 */
unsigned addPointToPath : 1; /* Bit 1 */
unsigned checkPktDest : 1; /* Bit 2 */
unsigned neverARC060 : 1; /* Bit 3 */
unsigned createSema : 1; /* Bit 4 */
unsigned dailyMail : 1; /* Bit 5 */
unsigned warnNewMail : 1; /* bit 6 */
unsigned killBadFAtt : 1; /* Bit 7 */
unsigned dupDetection : 1; /* Bit 8 */
unsigned ignoreMSGID : 1; /* Bit 9 */
unsigned ARCmail060 : 1; /* Bit 10 */
unsigned extNames : 1; /* Bit 11 */
unsigned persNetmail : 1; /* Bit 12 */
unsigned privateImport : 1; /* Bit 13 */
unsigned keepExpNetmail : 1; /* Bit 14 */
unsigned killEmptyNetmail : 1; /* Bit 15 */ } mailOptionsType;
typedef struct
{
unsigned sortNew : 1; /* bit 0 */
unsigned sortSubject : 1; /* bit 1 */
unsigned updateChains : 1; /* bit 2 */
unsigned reTear : 1; /* bit 3 */
unsigned : 1; /* bit 4 */
unsigned : 1; /* bit 5 */
unsigned removeRe : 1; /* bit 6 */
unsigned removeLfSr : 1; /* bit 7 */
unsigned scanAlways : 1; /* bit 8 */
unsigned scanUpdate : 1; /* bit 9 */
unsigned multiLine : 1; /* bit 10 */
unsigned : 1; /* bit 11 */
unsigned quickToss : 1; /* bit 12 */
unsigned : 1; /* bit 13 */
unsigned : 1; /* bit 14 */
unsigned sysopImport : 1; /* bit 15 */ } mbOptionsType;
typedef struct
{
unsigned keepRequest : 1; /* Bit 0 */
unsigned keepReceipt : 1; /* Bit 1 */
unsigned : 2; /* Bit 2-3 */
unsigned autoDiscArea : 1; /* Bit 4 */
unsigned autoDiscDel : 1; /* Bit 5 has temp. no effect, rec is always deleted */
unsigned : 3; /* Bit 6-8 */
unsigned allowAddAll : 1; /* Bit 9 */
unsigned allowActive : 1; /* Bit 10 */
unsigned : 1; /* Bit 11 */
unsigned allowPassword: 1; /* Bit 12 */
unsigned allowPktPwd : 1; /* Bit 13 */
unsigned allowNotify : 1; /* Bit 14 */
unsigned allowCompr : 1; /* Bit 15 */ } mgrOptionsType;
#if 0
typedef struct
{
unsigned active : 1; /* Bit 0 */
unsigned tinySeenBy : 1; /* Bit 1 */
unsigned security : 1; /* Bit 2 */
unsigned : 1; /* Bit 3 */
unsigned allowPrivate: 1; /* Bit 4 */
unsigned impSeenBy : 1; /* Bit 5 */
unsigned checkSeenBy : 1; /* Bit 6 */
unsigned : 1; /* Bit 7 */
unsigned local : 1; /* Bit 8 */
unsigned : 1; /* Bit 9 */
unsigned passThrough : 1; /* Bit 10 */
unsigned : 3; /* Bit 11-13 */
unsigned arrivalDate : 1; /* Bit 14 */
unsigned sysopRead : 1; /* Bit 15 */ } defaultOptionsType;
#endif
typedef struct
{
unsigned addPlusPrefix : 1; /* BIT 0 */
unsigned : 3;
unsigned unconditional : 1; /* BIT 4 */
unsigned : 11; } uplOptType;
typedef struct
{
uchar userName[36];
uchar reserved[28];
} userType;
typedef struct
{
nodeNumType node;
uchar program[9];
uchar password[17];
uchar fileName[13];
uchar fileType;
u32 groups;
uchar originAka;
uplOptType options;
uchar reserved[9]; } uplinkReqType;
typedef struct
{ u16 valid;
u16 zone;
u16 net;
u16 node; } akaMatchNodeType;
typedef struct
{
akaMatchNodeType amNode;
u16 aka; } akaMatchType;
/* ATTENTION: FMAIL.CFG does NOT use the new config file type yet (no header) !!! */
typedef struct
{
uchar versionMajor;
uchar versionMinor;
s32 creationDate;
u32 key;
u32 reservedKey;
u32 relKey1;
u32 relKey2;
uchar reserved1[22];
mgr